<?php
class ComentariosController extends AppController {

    var $name = 'Comentarios';
    var $uses = array('Comentario', 'Texto');
    var $helpers = array('Html', 'Form', 'Javascript', 'CakePtbr.Formatacao');
    var $components = array('Captcha');

    function add() {
        if (!empty($this->data)) {
            if($this->validateCaptcha($this->data['Comentario']['captcha'])){
                $this->Comentario->create();
                if ($this->Comentario->save($this->data)) {
                    $this->Session->setFlash(__('Seu comentário foi enviado.', true));
                    $texto = $this->Texto->read(null, $this->data['Comentario']['texto_id']);
                    $this->redirect(array('controller'=>'textos', 'action'=>'exibe', 'id'=>$this->data['Texto']['slug']));
                }
                else {
                    $this->Session->setFlash(__('O comentário não pode ser enviado. Por favor, tente novamente.', true));
                    $this->redirect(array('controller'=>'textos', 'action'=>'exibe', 'id'=>$this->data['Texto']['slug']));
                }
            }
            else{
                $this->Session->setFlash(__('Texto da imagem n&atilde;o confere. Tente novamente.', true));
                $d = new Dispatcher();
                $d->dispatch(
                    array('controller'=>'comentarios','action'=>'valida'),
                    array("data" => $this->data)
                );
            }
        }
    }

    function index()
    {
            $this->Comentario->recursive = 2;
            $this->set('comentarios', $this->paginate());
    }

    function valida()
    {
    }

    function validateCaptcha($val){
            $caseInsensitive = true;

            if ($caseInsensitive) {
                $val = substr(strtoupper($val), 0, 5);
            }

            //php-captcha.inc.php
            if(!defined('CAPTCHA_SESSION_ID'))
                define('CAPTCHA_SESSION_ID', 'php_captcha');

             if (!empty($_SESSION[CAPTCHA_SESSION_ID]) && $val == substr(strtoupper($_SESSION[CAPTCHA_SESSION_ID]), 0, 5)) {
                // clear to prevent re-use
                unset($_SESSION[CAPTCHA_SESSION_ID]);

                return true;
             }

             return false;
        }

        function captcha_image()
	{
	    $this->Captcha->image();
	}

	function captcha_audio()
	{
	    $this->Captcha->audio();
	}
}
?>